﻿<?php
require 'SiteController.php';

class CategoryController extends SiteController {

    public function init() {
        parent::init();
    }

    public function indexAction() {
//		$this->view->headLink()->appendStylesheet(PUBLIC_URL.'/skins/default/css/category.css');
//		$this->view->headScript()->appendFile(PUBLIC_URL.'/skins/default/js/category.js');
        try {
            //lấy giá trị category slug và type
            $request = $this->getRequest();
            $slug = $request->getParam('slug');
            $type = $request->getParam('type', 'car');

            //lấy ra cat hiện tại
            $category = $this->_categoryModel->getCategoryBySlug($slug);

            if (isset($category->page_title) && $category->page_title != "") {
                $this->view->headTitle($category->page_title, "SET");
            } else {
                $this->view->headTitle($category->name);
            }
            if (isset($category->page_description) && $category->page_description != "") {
                $this->view->headMeta($category->page_description, "description", 'name', array(), 'SET');
            }
            if (isset($category->tags) && $category->tags != "") {
                $this->view->headMeta($category->tags, "keywords", 'name', array(), 'SET');
            }
            $this->view->category = $category;
            //bắt đầu lấy các sản phẩm
            $posts = $this->_postModel->getPostByCategoryID($category->id, $type, -1);
            //Đưa danh sách product vào Zend_Paginator để bắt đầu phân trang
            $paginator = Zend_Paginator::factory($posts);
            //Số product trên một trang
            $paginator->setItemCountPerPage(15);
            //Số trang được hiện ra để click
            $paginator->setPageRange(5);
            //Lấy trang hiện tại
            $currentPage = $this->getRequest()->getParam('page', 1);
            //vi page lấy về có dạng _p1 nên phải bỏ chữ p đi
            $currentPage = substr($currentPage, 1);
            $paginator->setCurrentPageNumber($currentPage);

            //Truyền dữ liệu ra view
            $this->view->posts = $paginator;
        } catch (Exception $ex) {
            echo $ex->getTraceAsString();
        }
    }

    public function accessoryAction() {
        $cat_slug = $this->getRequest()->getParam("cat_slug", "");
        $arrCategories = array();
        if ($cat_slug == "") {

            $categories = $this->_categoryModel->getAllCategories("accessory");
            foreach ($categories as $category) {
                $objCategory = new stdClass();
                $objCategory->id = $category->id;
                $objCategory->name = $category->name;
                $objCategory->slug = $category->slug;
                $objCategory->accessories = $this->_postModel->getPostByCategoryID($category->id, "accessory", 3);
                $arrCategories[] = $objCategory;
            }
            $this->view->categories = $arrCategories;
        } else {
            $category = $this->_categoryModel->getCategoryBySlug($cat_slug);
            $this->view->category = $category;
            //Đưa danh sách product vào Zend_Paginator để bắt đầu phân trang
            
            $paginator = Zend_Paginator::factory($this->_postModel->getPostByCategoryID($category->id, "accessory"));

            //Số product trên một trang
            $paginator->setItemCountPerPage(15);
            //Số trang được hiện ra để click
            $paginator->setPageRange(5);
            //Lấy trang hiện tại
            $currentPage = $this->getRequest()->getParam('page', 1);
            //vi page lấy về có dạng p1 nên phải bỏ chữ p đi
            $currentPage = substr($currentPage, 1);
            $paginator->setCurrentPageNumber($currentPage);

            //Truyền dữ liệu ra view
            $this->view->accessories = $paginator;
        }
    }

    public function boxAction() {

        $cat_slug = $this->getRequest()->getParam("cat_slug", "");
        $arrCategories = array();
        if ($cat_slug == "") {
            $categories = $this->_categoryModel->getAllCategories();
            foreach ($categories as $category) {
                $objCategory = new stdClass();
                $objCategory->id = $category->id;
                $objCategory->name = $category->name;
                $objCategory->slug = $category->slug;
                $objCategory->boxes = $this->_postModel->getPostByCategoryID($category->id, "box", 6);
                $arrCategories[] = $objCategory;
            }
            $this->view->categories = $arrCategories;
        } else {
            $category = $this->_categoryModel->getCategoryBySlug($cat_slug);
            $this->view->category = $category;
            //Đưa danh sách product vào Zend_Paginator để bắt đầu phân trang
            $paginator = Zend_Paginator::factory($this->_postModel->getPostByCategoryID($category->id, "box"));
            //Số product trên một trang
            $paginator->setItemCountPerPage(15);
            //Số trang được hiện ra để click
            $paginator->setPageRange(5);
            //Lấy trang hiện tại
            $currentPage = $this->getRequest()->getParam('page', 1);
            //vi page lấy về có dạng p1 nên phải bỏ chữ p đi
            $currentPage = substr($currentPage, 1);
            $paginator->setCurrentPageNumber($currentPage);

            //Truyền dữ liệu ra view
            $this->view->boxes = $paginator;
        }
    }

    public function carAction() {
        $arrCategories = array();
        $categories = $this->_categoryModel->getAllCategories();
        foreach ($categories as $category) {
            $objCategory = new stdClass();
            $objCategory->id = $category->id;
            $objCategory->name = $category->name;
            $objCategory->slug = $category->slug;
            $objCategory->cars = $this->_postModel->getPostByCategoryID($category->id, "car", 3);
            $arrCategories[] = $objCategory;
        }
        $this->view->categories = $arrCategories;
    }

    public function searchAction() {
        //lấy keywork
        $key = $this->getRequest()->getParam('key');
        $category_id = $this->getRequest()->getParam('category_id', 0);
        $type = $this->getRequest()->getParam('type', '');
        echo $category_id . " " . $type;
        if (isset($key) && $key != '') {
            //bắt đầu lấy các sản phẩm
            $posts = $this->_postModel->searchPosts($key, $category_id, $type);
            $this->view->posts = $posts;
        }
    }

}
?>